package cn.cai;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;

/**
 * Spring Security : 默认环境中，拦截所有的请求，要求必须认证（登录）后才能访问。
 * 默认环境中，用户是user。每次启动的时候，动态生成一个长度128字节的密码，在控制台输出。
 * 默认环境中，提供登录页面的请求地址是：/login; 请求方式是：GET
 * 默认环境中，处理登录请求的地址是：/login; 请求方式是：POST
 *
 *
 * EnableGlobalMethodSecurity - 注解是开启Spring Security注解扫描的。
 *  默认扫描当前类所在包及所有子孙包中的Security注解
 *  在部分的版本中。只要声明注解，所有的属性自动赋值为true
 *  大多数版本中，注解的属性默认值都是false。
 *  securedEnabled: 开启secured注解
 *  prePostEnabled： 开启prePost注解
 */
@SpringBootApplication
@MapperScan(basePackages = {"cn.cai.mapper"})
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)  // 开启Security 中 secured注解的使用
public class SpringSecurityApp {
    public static void main(String[] args) {
        SpringApplication.run(SpringSecurityApp.class, args);
    }
}
